<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        function Person(firstName, lastName) {
            this.firstName = firstName;
            this.lastName = lastName;
        }
        const lydia = new Person("Lydia", "Hallie");
        const sarah = Person("Sarah", "Smith");
        console.log(lydia); //Person{firstName:Lydia,lastName:Hallie}
        console.log(sarah); //undefined
        // 对于sarah, 我们没有使用new关键字。 使用new时， 它指
        // 的是我们创建的新空对象。 但是, 如果你不添加new它指的
        // 是全局对象!
        //     我们指定了this.firstName等于 'Sarah和this.lastName等
        // 于Smith。 我们实际做的是定义global.firstName = 'Sarah'
        // 和global.lastName = 'Smith。 sarah本身 的返回值是un-
        // defined。
    </script>
</body>

</html>